﻿using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Control.conexion;

namespace Control.clases
{
    public class clsUbicacionLugar
    {
        private int idUbicacion;
        private string ubicacionArea;
        private string ubicacionCodigo;
        private string ubicacionSigla;
        private string ubicacionDepende;
        private int idLugar;
        private string lugarSede;
        private string lugarDireccion;

        public int IdLugar
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        public int IdUbicacion
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        public System.Data.DataTable buscarLugar(string _Id)
        {
            clsConexion oDataBase = new clsConexion();
            try
            {
                DbCommand cmd = oDataBase.CargarComandoSP("USP_S_BUSCAR_TB_LUGAR");
                oDataBase.AddParametro(cmd, "@id_lugar", _Id);

                return oDataBase.EjecutarConsulta(cmd);
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public System.Data.DataTable buscarUbicacion(string _Id)
        {
            clsConexion oDataBase = new clsConexion();
            try
            {
                DbCommand cmd = oDataBase.CargarComandoSP("USP_S_BUSCAR_TB_UBICACION");
                oDataBase.AddParametro(cmd, "@id_ubicacion", _Id);

                return oDataBase.EjecutarConsulta(cmd);
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int agregarUbicacion(string _ubicacionArea, string _ubicacionCodigo, string _ubicacionDepende, string _ubicacionSigla)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_I_INSERTAR_TB_UBICACION"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@ubicacion_area", _ubicacionArea);
                oDataBase.AddParametro(cmd, "@ubicacion_codigo", _ubicacionCodigo);
                oDataBase.AddParametro(cmd, "@ubicacion_sigla", _ubicacionSigla);
                oDataBase.AddParametro(cmd, "@ubicacion_depende", _ubicacionDepende);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int agregarLugar(string _lugarSede, string _lugarDireccion)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_I_INSERTAR_TB_LUGAR"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@lugar_sede", _lugarSede);
                oDataBase.AddParametro(cmd, "@lugar_direccion", _lugarDireccion);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public System.Data.DataTable listarUbicacion()
        {
            clsConexion oDataBase = new clsConexion();
            try
            {
                DbCommand cmd = oDataBase.CargarComandoSP("USP_S_LISTAR_TB_UBICACION");
                return oDataBase.EjecutarConsulta(cmd);
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public System.Data.DataTable listarLugar()
        {
            clsConexion oDataBase = new clsConexion();
            try
            {
                DbCommand cmd = oDataBase.CargarComandoSP("USP_S_LISTAR_TB_LUGAR");
                return oDataBase.EjecutarConsulta(cmd);
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int actualizarLugar(string _Id, string _lugarSede, string _lugarDireccion)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_U_ACTUALIZAR_TB_LUGAR"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@id_lugar", _Id);
                oDataBase.AddParametro(cmd, "@lugar_sede", _lugarSede);
                oDataBase.AddParametro(cmd, "@lugar_direccion", _lugarDireccion);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int actualizarUbicacion(string _Id, string _ubicacionArea, string _ubicacionCodigo, string _ubicacionDepende, string _ubicacionSigla)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_U_ACTUALIZAR_TB_UBICACION"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@id_ubicacion", _Id);
                oDataBase.AddParametro(cmd, "@ubicacion_area", _ubicacionArea);
                oDataBase.AddParametro(cmd, "@ubicacion_codigo", _ubicacionCodigo);
                oDataBase.AddParametro(cmd, "@ubicacion_sigla", _ubicacionSigla);
                oDataBase.AddParametro(cmd, "@ubicacion_depende", _ubicacionDepende);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int eliminarLugar(int _idLugar)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_D_ELIMINAR_TB_LUGAR"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@id_lugar", _idLugar);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int eliminarUbicacion(int _idUbicacion)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_D_ELIMINAR_TB_UBICACION"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@id_ubicacion", _idUbicacion);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }
    }
}
